package org.ysu.shoeShopping.service;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.ysu.shoeShopping.entity.Brands;
import java.util.List;

/**
 * 鞋子品牌业务服务接口
 * 定义品牌相关的业务逻辑操作，包括：
 * - 品牌基础CRUD操作
 * - 品牌状态管理（上线/下线）
 * - 品牌信息查询和分页
 *
 * @author makejava
 * @since 2025-09-13 16:56:40
 */
public interface BrandsService {

    /**
     * 通过ID查询单条数据
     *
     * @param bid 主键
     * @return 实例对象
     */
    Brands queryById(Integer bid);

    /**
     * 分页查询
     *
     * @param brands 筛选条件
     * @param pageRequest      分页对象
     * @return 查询结果
     */
    Page<Brands> queryByPage(Brands brands, PageRequest pageRequest);

    /**
     * 新增数据
     *
     * @param brands 实例对象
     * @return 实例对象
     */
    Brands insert(Brands brands);

    /**
     * 修改数据
     *
     * @param brands 实例对象
     * @return 实例对象
     */
    Brands update(Brands brands);

    /**
     * 通过主键删除数据
     *
     * @param bid 主键
     * @return 是否成功
     */
    boolean deleteById(Integer bid);

    /**
     * 获取所有启用的品牌
     *
     * @return 启用品牌列表
     */
    List<Brands> getAllActiveBrands();

    List<Brands> findAllBrands();

}
